Release 10.1A: OpenEdge Development:
Progress Dynamics Basic Development


Running a window with a lookup

If you run the window containing the example Order viewer, the Customer Number key appears, with the Customer Name field alongside it, as shown in Figure 7–3.

Figure 7–3: Order Update window

The lookup provides several different ways to identify a new key value.

First, if the user enters a correct key value or partial key value in the CustNum field, the lookup verifies the value, completes it if necessary, and displays its associated linked fields. If more than one record matches the partial value entered, then the lookup automatically launches the browse window and filters the values down to the value entered. If no value matches what is entered, then the key value and linked fields are empty to show that the value entered is invalid.

Alternatively, the user can choose the binoculars button or press the F4 keyboard shortcut to launch the lookup browse window. If there was already a value or partial value in the key field, the browser comes up filtered for that value. This means that if the user is editing an existing record, and chooses the lookup button or presses F4 without first clearing the key field or typing a partial new value into it, the browse window comes up filtered to display only the record with the current value. To change this, the user must select the Filter tab and blank out the values in the key field, or enter another appropriate filter. This behavior might be modified in the future so that an existing value that has not been changed will not automatically filter the browser values.

When the lookup browse window appears, as shown in Figure 7–4, it lists the records matching the filter or partial value, if any. Otherwise, it shows the unfiltered value list. The browser shows all the fields you picked as Display Fields when you defined the lookup.

Figure 7–4: Customer lookup

The setting for Rows To Batch from the lookup definition is shown in this window as Records to retrieve. If the entire data set has been retrieved (with or without a filter applied), then the size of the data set is displayed in the Records Read field and the Query Complete toggle box is selected. If there are more records in the database matching the current query than have already been retrieved, the Query Complete toggle box is cleared. In this case, when the user scrolls down to the bottom of the current list or chooses the Filter tab and enters a reposition From value, the framework retrieves another batch of records from the server. If users want to change the size of the batch, they can do so in the Records to retrieve fill-in field. A user might, for example, set this to a high number to force retrieval of all remaining records at once so that they could be sorted on the client. Using a high number might cause a significant delay in the filling of the next batch.

The browse window is resizable, to show more rows at a time or to show more of the columns in the browser without scrolling. The user can also resize individual columns to display data more efficiently. The user can sort on any column by clicking on the column heading. This sort is done on records already retrieved from the database, so if the Query Complete toggle box is not selected, the sort will not be complete. This is why a user might want to force retrieval of all possible records before sorting, if this is really necessary to locate the right record.

To select a record, the user can position to the row and press ENTER, double-click the row, choose the Select toolbar button, or key the shortcut ALT-S.

The Filter tab shows a list of all the fields in the lookup browser, in the order they appear in the browser, and allows the user to pick From and To values for any field, as shown in Figure 7–5.

Figure 7–5: Customer lookup window—Filter tab

The Clear button clears all filter values, and Apply applies the filter settings, reopens the query accordingly, and returns to the Lookup tab, where the matching values are displayed.

If the user enters just a From value, then the query is effectively repositioned to that value, showing all records with a value greater than or equal to the value entered. If the user enters both From and To values, then that range is filtered. To see all records with a particular value in a filter field, the user must enter the same value in both the From and To fields. A high values tag is automatically appended to any value entered as a To Value, so that, for example, the filter shown above, From “b” To “b”, will return a set of all customers whose names begin with ‘B’.

The framework uses validation checks that assure the data the user enters is of the correct data type and that the ranges the user specifies are valid.

This filter capability is very similar to that offered by the Filter button on many Progress Dynamics tools windows. You can make the Filter button a standard part of any application window by using a toolbar with the Filter button. However, the two filter techniques differ in the following ways:


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095